//对于axios进行二次封装

import axios from "axios"
//引入进度条js
import nprogress from 'nprogress'
//引入进度条样式
import store from '@/store/index'
import "nprogress/nprogress.css";
//1利用axios对象的方法 去创建一个axios实例
const request = axios.create({
    //路径的接口都有api 访问的时候路径会出现api
    baseURL:'/api',
    //请求时间超时
    timeout:5000,
})
//请求拦截器：在发送之前，请求拦截器可以检测到,可以请求发出之前做一些事

request.interceptors.request.use((config)=>{
    //config 对象中有一个属性比较重要 headers
    //开启进度条
    if(store.state.datial.uuidtoken){
        config.headers.userTempId = store.state.datial.uuidtoken
    }
    if(localStorage.getItem('token')){
        config.headers.token = localStorage.getItem('token')
    }
    nprogress.start();
    return config

})

//响应拦截器

request.interceptors.response.use((res)=>{
    //成功的回调函数 服务器响应数据回来以后 响应拦截器可以检测到 可以做一些事情
    //关闭进度条
    nprogress.done()
    return res.data
},err=>{return Promise.reject(new Error(err))})

export default request